<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>js的逻辑运算符</title>
		<script>
			/*逻辑运算符：
			 *		&&：与（短路）
			 *		||：或（短路）
			 * 		！：非
			 * 			其他类型转Boolean：
			 * 				1、number：0为假，非0为真
			 * 				2、string：除了空字符串，其他都为 真
			 * 				3、null&undefined：都是false
			 *              4、对象：多有对象都为true
			 * */
			
			var flag = true;
			document.write(flag + "<br />")
			document.write(!flag + "<br />")
			document.write("<hr />")
			//number类型
			var num = 3;
			var num1 = 0;
			var num2 = NaN;
			document.write(!!num + "<br />")
			document.write(!!num1 + "<br />")
			document.write("<hr />")
			//字符串类型
			var str1 = "";
			var str2 = "abc";
			document.write(!!str1 + "<br />")
			document.write(!!str2 + "<br />")
			document.write("<hr />")
			//null&undefined类型
			var obj = "a";
			var obj1 = undefined;
			document.write(!!obj + "<br />")
			document.write(!!obj1 + "<br />")
			document.write("<hr />")
			//对象类型
			var date = new Date();
			document.write(!!date + "<br />")
			document.write("<hr />")
			
			if(obj != null && obj.length > 0){//防止空指针异常
				alert(1213);
			}
			//js中可以这样定义简化书写
			if(obj){//防止空指针异常
				alert(1213);
			}
		</script>
	</head>
	<body>
	</body>
</html>
